Phone no: (021) 7989671 or email us: info@zahra-itsolution.com
Posted on 16 August 2024
Untuk membuat fitur login di Laravel, ada beberapa persyaratan yang perlu dipenuhi agar proses autentikasi dapat berjalan dengan baik:
Tabel users
: Tabel ini biasanya sudah disediakan oleh Laravel dan mencakup kolom-kolom yang diperlukan untuk autentikasi seperti id
, name
, email
, password
, remember_token
, dan created_at
.
Migrasi Database: Pastikan tabel users
sudah ada dengan menjalankan migrasi:
php artisan migrate
Untuk membuat fitur login di Laravel, Anda dapat mengikuti langkah-langkah berikut:
Pastikan Anda sudah menginstal Laravel di sistem Anda. Jika belum, instalasi bisa dilakukan dengan perintah berikut:
composer create-project --prefer-dist laravel/laravel project-name
Laravel sudah menyediakan sistem autentikasi bawaan. Jika Anda menggunakan Laravel 8 atau lebih baru, Anda dapat menggunakan Jetstream, Breeze, atau membuat sistem login secara manual.
Contoh dengan Laravel Breeze:
php artisan breeze:install
npm install && npm run dev
php artisan migrate
Jetstream atau Breeze akan membuat beberapa tabel terkait pengguna di database Anda. Jalankan perintah berikut untuk melakukan migrasi:
php artisan migrate
Laravel Breeze dan Jetstream sudah menyediakan rute bawaan untuk login. Anda bisa melihatnya di routes/web.php
:
use App\Http\Controllers\Auth\AuthenticatedSessionController;
Route::get('/login', [AuthenticatedSessionController::class, 'create'])
->name('login');
Route::post('/login', [AuthenticatedSessionController::class, 'store']);
Jika Anda menggunakan Laravel Breeze atau Jetstream, tampilan login sudah otomatis disediakan. Namun, jika Anda ingin membuat tampilan login sendiri, buat file resources/views/auth/login.blade.php
dan isi dengan form login:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Login') }}</div>
<div class="card-body">
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<div class="col-md-6 offset-md-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
<label class="form-check-label" for="remember">
{{ __('Remember Me') }}
</label>
</div>
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Login') }}
</button>
@if (Route::has('password.request'))
<a class="btn btn-link" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
@endif
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
Anda bisa mengatur halaman mana yang dituju setelah login berhasil dengan mengubah properti $redirectTo
di AuthenticatedSessionController
:
protected $redirectTo = '/dashboard';
Atau, di Laravel 8 ke atas, Anda bisa mengatur ini di RouteServiceProvider
:
public const HOME = '/dashboard';
Pastikan Anda menambahkan middleware auth
ke rute yang memerlukan autentikasi. Misalnya, untuk halaman dashboard:
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth']);
Sekarang, jalankan server Laravel Anda untuk melihat hasilnya:
php artisan serve
Buka browser dan akses http://localhost:8000/login
untuk melihat halaman login.
Dengan langkah-langkah di atas, Anda sudah dapat membuat fitur login di Laravel.